﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using DomainModel;
using BL;

namespace SL
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService3" in both code and config file together.
    [ServiceContract]
    public interface ISLCustomer
    {

        [OperationContract]
        void InsertCustomer(BaseCustomer customer, ref List<string> errors);

        [OperationContract]
        void BlockUser(int userID, ref List<string> errors);

        [OperationContract]
        void UnBlockCustomer(int id, ref List<string> errors);
        
        [OperationContract]
        void ChangePermission(BaseCustomer customer, ref List<string> errors);
       
        [OperationContract]
        void UpdateUserReden(int id, BaseCustomer UpdateList, ref List<string> errors);
   
     //   [OperationContract]
      //  void UnBlockCustomer(int id, ref List<string> errors);

        [OperationContract]
        List<BaseCustomer> GetName(ref List<string> errors);

        [OperationContract]
        BaseCustomer getId(BaseCustomer customer, ref List<string> errors);

        [OperationContract]
        String GetEmail(int id, ref List<string> errors);

        [OperationContract]
        BaseCustomer GetCustomerDetail(int id, ref List<string> errors);

        [OperationContract]
        void DeleteCustomer(int id, ref List<string> errors);


        // for login user
        [OperationContract]
        BaseCustomer LoginInCheck(String email , String firstname , ref List<string> errors );

        [OperationContract]
        int IdfromEmail(string email, ref List<string> errors);
        
        /*Web master display part*/
        [OperationContract]
         int GetTotalUser(ref List<string> errors);

        [OperationContract]
           int GetTotalWebMaster(ref List<string> errors);
        [OperationContract]
         int GetTotalBlock(ref List<string> errors);

        [OperationContract]
        List<BaseCustomer> GetBlockUserInfor(ref List<string> errors);

        [OperationContract]
        List<BaseCustomer> GetWebMasterInfor(ref List<string> errors);
        /*end of display for webmaster*/
    }
}
